package com.zyh.scs.admin.api.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;
import org.javers.core.metamodel.annotation.DiffInclude;
import org.javers.core.metamodel.annotation.PropertyName;

import java.io.Serializable;

/**
 * @author hwh
 * @ClassName: 用户修改新增dto传输对象类$
 * @Description: $
 * @Date $
 * @Version 1.0
 */
@Data
@Schema(description = "用户修改新增dto传输对象类")
@Accessors(chain = true)
public class UserAddDto implements Serializable {

    /**
     * 用户名
     */
    @NotBlank(message = "用户名不能为空")
    @Schema(description = "用户名")
    private String username;

    /**
     * 锁定标记 是否禁用 启用，0未锁定，9已锁定
     */
    @Schema(description = "锁定标记 是否禁用 启用锁定标记，0未锁定，9已锁定")
    @NotBlank(message = "用户状态不能为空")
    private String lockFlag;

    private String guid;

    /**
     * 手机号
     */
    @DiffInclude
    @PropertyName("手机号")
    @Schema(description = "手机号")
    @Length(min = 11, max = 11, message = "手机号必须为11位")
    @NotNull(message = "手机号不能为空")
    private String phone;

    /**
     * 部门名称
     */
    @Schema(description = "部门名称")
    private Long deptId;
    @Schema(description = "第三方用户所属部门id")
    private String thirdDeptId;

    /**
     * 部门名称
     */
    @Schema(description = "部门名称")
    private String deptName;

    /**
     * 工号
     */
    @Schema(description = "工号")
    @NotBlank(message = "工号不能为空")
    private String userJobNumber;

    /**
     * 餐卡
     */
    @Schema(description = "餐卡")
    private String userMealsNumber;

    /**
     * 岗位
     */
    @Schema(description = "岗位id")
    private Long postId;

    /**
     * 岗位
     */
    @Schema(description = "岗位")
    private String post;

    /**
     * 用户类型1内部员工2委外员工3见习员工4充值无管理费人员5委外单位6食堂职工7其他8外部
     */
    @Schema(description = "用户类型1内部员工2委外员工3见习员工4充值无管理费人员5委外单位6食堂职工7其他8外部")
    @NotNull(message = "用户类型不能为空")
    private Integer userType;

    /**
     * 所属公司id
     */
    @Schema(description = "所属公司id")
    private Long companyId;

}
